package com.example.rjb_shoping.service;

import com.example.rjb_shoping.entity.RjbCustomer;
import com.example.rjb_shoping.query.CustomerQuery;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * (RjbCustomer)表服务接口
 *
 * @author makejava
 * @since 2021-06-09 20:42:53
 */
public interface RjbCustomerService {

    /**
     * 通过ID查询单条数据
     *
     * @param cId 主键
     * @return 实例对象
     */
    RjbCustomer queryById(Integer cId);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<RjbCustomer> queryAllByLimit(int offset, int limit);

    /**
     * 模糊查询
     *
     * @param nickName
     * @return
     */
    List<RjbCustomer> likeAll(String nickName);

    /**
     * 新增数据
     *
     * @param rjbCustomer 实例对象
     * @return 实例对象
     */
    RjbCustomer insert(RjbCustomer rjbCustomer);

    /**
     * 分页查询
     *
     * @param customerQuery
     * @return
     */
    PageInfo<RjbCustomer> limitList(CustomerQuery customerQuery);

    /**
     * 修改数据
     *
     * @param rjbCustomer 实例对象
     * @return 实例对象
     */
    RjbCustomer update(RjbCustomer rjbCustomer);

    /**
     * 通过主键删除数据
     *
     * @param cId 主键
     * @return 是否成功
     */
    boolean deleteById(Integer cId);

    /**
     * 消费者登录
     *
     * @param username 用户名
     * @param password 密码
     * @return
     */
    RjbCustomer login(String username, String password);

    /**
     * 用户注册
     *
     * @param nickName
     * @param password
     * @param phone
     * @param address
     * @return
     */
    Integer registered(String nickName, String password, String phone, String address, String emil);

    /**
     * 根据用户名查询用户
     *
     * @param username
     * @return
     */
    RjbCustomer selectOneName(String username);

    /**
     * 根据id删除用户（逻辑删除）
     *
     * @param cId
     * @return
     */
    boolean deleteByIdOne(Integer cId);

    /**
     * 修改用户状态
     *
     * @param name
     */
    void setCustomerByName(String name);
    int updateStatus(String username);
}
